#ifndef __SYS_H
#define __SYS_H

#ifdef __cplusplus
extern "C" {
#endif

/* ------------------------------ 头文件包含 ------------------------------ */

#include "stm32f1xx.h"

/* ------------------------------- 函数声明 -------------------------------- */

/* 系统控制函数 */
void sys_nvic_set_vector_table(uint32_t baseaddr, uint32_t offset); /* 设置中断偏移量 */
void sys_standby(void);                                             /* 进入待机模式 */
void sys_soft_reset(void);                                          /* 系统软复位 */

/* 汇编指令函数 */
void sys_wfi_set(void);             /* 执行WFI指令 */
void sys_intx_disable(void);        /* 关闭所有中断 */
void sys_intx_enable(void);         /* 开启所有中断 */
void sys_msr_msp(uint32_t addr);    /* 设置栈顶地址 */

/* 系统初始化函数 */
void SystemPeripheralInit(void);    /* 系统外设初始化 */
void SystemModuleInit(void);        /* 系统模块初始化 */
void SystemTaskInit(void);          /* 系统任务初始化 */

#ifdef __cplusplus
}
#endif

#endif /* __SYS_H */
